package com.yang.controller;

import com.yang.dto.DigitalHumanTaskDTO;
import com.yang.dto.DigitalHumanVideoDTO;
import com.yang.dto.req.VideoCreationRequest;
import com.yang.result.Result;
import com.yang.service.GenerateVideoService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * 数字人控制层
 * 作者： yang
 * 时间： 2025/07/07
 */
@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
public class GenerateVideoController {

    private final GenerateVideoService generateVideoService;

    /**
     * 创建视频生成任务（使用URL）
     * @param params 要生成视频的文字内容和图片的 URL
     * @return 包含任务ID的结果对象
     * @throws Exception 处理过程中可能出现的异常
     */
    @PostMapping(value = "/createVideoByUrl")
    public Result<DigitalHumanTaskDTO> createVideoByUrl(@RequestBody @Validated VideoCreationRequest params) throws Exception {
        // 调用服务层方法，创建视频生成任务
        DigitalHumanTaskDTO taskDTO = generateVideoService.startCreateVideo(params);
        return Result.success(taskDTO);
    }

    /**
     * 查询视频生成任务状态
     * 
     * @param digitalHumanId 数字人
     * @return 任务状态和结果信息
     */
    @GetMapping("/status/{digitalHumanId}")
    public Result<String> getTaskStatus(@PathVariable Long digitalHumanId) {
        String videoUrl = generateVideoService.queryVideoTaskStatus(digitalHumanId);
        return Result.success(videoUrl);
    }
    
}
